#ifndef Defs_h
#define Defs_h

#define WIN32_LEAN_AND_MEAN
#define _CRT_SECURE_NO_DEPRECATE
#include <windows.h>
#include <httpfilt.h>
#include <mscoree.h>
#include <new>

#import <mscorlib.tlb> raw_interfaces_only high_property_prefixes("_get", "_put", "_putref")
using namespace mscorlib;

#import <KodeIT.Web.tlb> raw_interfaces_only high_property_prefixes("_get", "_put", "_putref")
using namespace KodeIT_Web;

//
// Various defines
//

#define CLR_VERSION				L"v2.0.50727"
#define CLR_FLAVOR				L"svr"
#define CLR_DLL					L"mscoree.dll"
#define CLR_LOADSTRINGRC		"LoadStringRC"
#define MANAGED_ASSEMBLY		L"KodeIT.Web, Version=1.0.1.0, Culture=neutral, PublicKeyToken=18823f5c6a796933"
#define MANAGED_SETUPCLASS		L"KodeIT.Web.Hosting.ProxySetup"
#define MANAGED_INSTANCECLASS	L"KodeIT.Web.Hosting.ProxyInstance"
#define EVENTLOG_SOURCE			"Filter.NET Framework"

//
// Type definition for the LoadStringRC function
//

typedef HRESULT (__stdcall * LoadStringRC_T) (unsigned int, wchar_t *, int, int);

//
// Type definition for the http header functions
//

typedef BOOL (__stdcall * GetHeaderFn_T)(struct _HTTP_FILTER_CONTEXT *, LPSTR, LPVOID, LPDWORD);
typedef BOOL (__stdcall * SetHeaderFn_T) (struct _HTTP_FILTER_CONTEXT *, LPSTR, LPSTR);
typedef BOOL (__stdcall * AddHeaderFn_T) (struct _HTTP_FILTER_CONTEXT *, LPSTR, LPSTR);

//
// All the other includes
//

#include "trace.h"
#include "exception.h"
#include "helper.h"
#include "clr.h"
#include "config.h"

#endif